Ext.define('Ssimgres.controller.TipoCapacitacion', {
	extend : 'Ext.app.Controller',
	views : ['tipoCapacitacion.TipoCapacitacionesView', 'tipoCapacitacion.TipoCapacitacionView'],
	stores : ['TipoCapacitaciones'],
	models : ['TipoCapacitacion'],
	refs : [{
		ref : 'tipoCapacitacionesView',
		selector : 'tipoCapacitacionesView'
	}, {
		ref : 'tipoCapacitacionView',
		selector : 'tipoCapacitacionView'
	}],
	init : function() {
		this.control({
			'tipoCapacitacionesView' : {
				itemclick : this.activarBotones
			},
			'tipoCapacitacionesView button[action=btnNuevo]' : {
				click : this.tipoCapacitacionViewShow
			},
			'tipoCapacitacionesView button[action=btnEliminar]' : {
				click : this.eliminarTipo
			},
			'tipoCapacitacionesView button[action=btnEditar]' : {
				click : this.tipoCapacitacionViewShowEditar
			},
			'tipoCapacitacionView button[action=btnCancelar]' : {
				click : this.tipoCapacitacionViewCancelar
			},
			'tipoCapacitacionView button[action=btnGuardar]' : {
				click : this.tipoCapacitacionViewGuardar
			},
		});
	},
	reset : function() {
		Ext.getCmp('tipoCapacitacionesView_btnEditar').setDisabled(true);
		Ext.getCmp('tipoCapacitacionesView_btnEliminar').setDisabled(true);
		this.getTipoCapacitacionesStore().load();
		this.getTipoCapacitacionesView().getSelectionModel().clearSelections();
	},
	tipoCapacitacionViewShow : function() {
		var TipoCapacitacion = this.getTipoCapacitacionModel();
		var tipoCapacitacion = new TipoCapacitacion();
		Ext.widget('tipoCapacitacionView').show();
		var form = this.getTipoCapacitacionView().down('form').getForm();
		form.loadRecord(tipoCapacitacion);
	},
	tipoCapacitacionViewShowEditar : function() {
		Ext.widget('tipoCapacitacionView').show();
		var form = this.getTipoCapacitacionView().down('form').getForm();
		form.loadRecord(this.getTipoCapacitacionesView().getSelectionModel().getSelection()[0]);
	},
	activarBotones : function() {
		Ext.getCmp('tipoCapacitacionesView_btnEditar').setDisabled(false);
		Ext.getCmp('tipoCapacitacionesView_btnEliminar').setDisabled(false);
	},

	tipoCapacitacionViewCancelar : function() {
		this.getTipoCapacitacionView().close();
	},
	tipoCapacitacionViewGuardar : function() {
		var form = this.getTipoCapacitacionView().down('form').getForm();
		form.updateRecord();
		if (form.isValid()) {
			form.getRecord().save({
				success : function(operation) {
					Ext.Msg.show({
						title : 'Éxito',
						msg : operation.proxy.reader.jsonData["msg"],
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.INFO
					});
					this.getTipoCapacitacionView().close();
					this.reset();
				},
				failure : function(operation) {
					Ext.Msg.show({
						title : 'Error',
						msg : operation.proxy.reader.jsonData["msg"],
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR
					});
				},
				scope : this
			});
		} else {
			Ext.Msg.show({
				title : 'Atención',
				msg : 'Verifica los campos del formulario',
				buttons : Ext.Msg.OK,
				icon : Ext.Msg.WARNING
			});
		}

	},
	eliminarTipo : function() {
		var record = this.getTipoCapacitacionesView().getSelectionModel().getSelection()[0];
		Ext.Msg.confirm('Eliminar registro', '¿Está seguro de la operación?', function(id, value) {
			if (id === 'yes') {
				record.destroy({
					success : function(operation) {
						Ext.Msg.show({
							title : 'Éxito',
							msg : operation.proxy.reader.jsonData["msg"],
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.INFO
						});
						this.reset();
					},
					failure : function(operation) {
						Ext.Msg.show({
							title : 'Error',
							msg : operation.proxy.reader.jsonData["msg"],
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.ERROR
						});
					},
					scope : this
				});
			}
		}, this);
	}
});
